﻿using AntJoin.Core.Extensions;

namespace AntJoin.Core.Common
{
    public class LoginUser
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 用户账号
        /// </summary>
        public string UserAccount { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>
        public string FullName { get; set; }


        /// <summary>
        /// 用户昵称
        /// </summary>
        public string NickName { get; set; }


        /// <summary>
        /// 用户类型
        /// </summary>
        public string ClientType { get; set; }


        /// <summary>
        /// 项目类型
        /// </summary>
        public string ProjectType { get; set; }


        /// <summary>
        /// 客户端ID
        /// </summary>
        public string ClientId { get; set; }


        /// <summary>
        /// 国际移动设备识别码
        /// </summary>
        public string Imel { get; set; }


        /// <summary>
        /// 角色
        /// </summary>
        public string Role { get; set; }


        /// <summary>
        /// 创建用户
        /// </summary>
        public LoginUser()
        {

        }



        /// <summary>
        /// 创建用户，不需要传入ProjectType,Role,NickName,IMEL
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="userAccount"></param>
        /// <param name="fullName"></param>
        /// <param name="clientType"></param>
        /// <param name="clientId"></param>
        public LoginUser(int userId, string userAccount, string fullName, string clientType, string clientId) 
            : this(userId, userAccount, fullName, fullName, clientType, clientId, null)
        {

        }



        /// <summary>
        /// 创建用户，不需要传入NickName,Role,IMEL
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="userAccount"></param>
        /// <param name="fullName"></param>
        /// <param name="clientType"></param>
        /// <param name="clientId"></param>
        /// <param name="projectType"></param>
        public LoginUser(int userId, string userAccount, string fullName, string clientType, string clientId, string projectType)
            : this(userId, userAccount, fullName, fullName, clientType, clientId, projectType)
        {

        }





        /// <summary>
        /// 创建用户，不需要传入Role,IMEL
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="userAccount"></param>
        /// <param name="fullName"></param>
        /// <param name="nickName"></param>
        /// <param name="clientType"></param>
        /// <param name="clientId"></param>
        public LoginUser(int userId, string userAccount, string fullName, string nickName, string clientType, string clientId, string projectType)
            : this(userId, userAccount, fullName, nickName, clientType, clientId, projectType, null)
        {

        }



        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="userAccount"></param>
        /// <param name="fullName"></param>
        /// <param name="nickName"></param>
        /// <param name="clientType"></param>
        /// <param name="clientId"></param>
        public LoginUser(int userId, string userAccount, string fullName, string nickName, string clientType, string clientId,string projectType, string imel)
            : this(userId, userAccount, fullName, nickName, clientType, clientId, projectType, imel, null)
        {

        }




        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="userAccount"></param>
        /// <param name="fullName"></param>
        /// <param name="nickName"></param>
        /// <param name="clientType"></param>
        /// <param name="clientId"></param>
        /// <param name="imel"></param>
        /// <param name="role"></param>
        public LoginUser(int userId,string userAccount,string fullName, string nickName, string clientType, string clientId, string projectType, string imel, string role)
        {
            UserId = userId;
            UserAccount = userAccount;
            FullName = fullName;
            NickName = nickName;
            ClientType = clientType;
            ClientId = clientId;
            Imel = imel;
            Role = role;
            ProjectType = projectType;
        }
    }
}
